#-*- coding: iso-8859-2  -*-

	##################################################

filesList = ["Extras","Places","Objects","Events"]
	
def style(): 
	return '''
		<style type="text/css">
		div#header-page-title {
			width:80%; margin:auto auto;
			padding:10px;
			background-color:#ffffff;
			border:1px #000000 solid;
			color:#000000;
		}
		div#header-page-links {
			width:80%; margin:auto auto;
			padding:10px;
			background-color:#000000;
			border:1px #000000 solid;
			color:#ffffff;
		}
		div#header-page-links a,
		div#header-page-links a:active,
		div#header-page-links a:visited,
		div#header-page-links a:hover {
			color:#ffffff;
			font-weight:bold;
		}
		body {
		margin:0;
		padding:0;
		background-color:#cccccc;
		}
		div#content {
			width:80%; margin:auto auto;
			padding:40px;
			background-color:#ffffff;
			border:1px #000000 solid;
		}
		div#header-page-title img,
		div#header-page-title h2 {
			
		}
		textarea#styled {
        height: 120px;
        border: 1px solid #dddddd;
        padding: 5px;
        font-family: Tahoma, sans-serif;
        background-image: url(bg.gif);
        background-position: bottom right;
        background-repeat: no-repeat;
		resize:both;
}

  
		</style>
		
	'''

def header():
	return style() + '''
	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	<html xmlns="http://www.w3c.org/1999/xhtml" xml:lang="pl" lang="pl">

	<link rel="shortcut icon" href="static/favicon.ico" type="image/x-icon">
	<div id="header-page-title">
		<img src="/static/agh_logo.png" alt="logo" WIDTH="50"/>
		<big><p align="center">Przetwarzanie języka naturalnego, Marcin Matyasik, Konrad Bielak</p></big>
	</div>
	<div id="header-page-links">
		<a href="/">Index</a>
	</div>
	
	<div id="content">
	'''

	

	##################################################

from bottle import get, post, request, route,run
from script import *
	#
	# GET form
	#

@get('/klasyfikator') # or @route('/login')
def do_magic(text='Owacją na stojąco przyjęli widzowie Teatru Rozrywki w Chorzowie premierę słynnej rock opery, opowiadającej o siedmiu ostatnich dniach z życia Jezusa -"Jesus Christ Superstar". Piotr zapierający się Jezusa wobec dziennikarzy, Herod otoczony tancerkami z międzywojennego kabaretu, confetti sypiące się na widzów pierwszych rzędów podczas tytułowego songu "Jesus Christ Superstar" - to rozwiązania, które zastosował reżyser spektaklu Marcel Kochańczyk.'):
	return header() + '<form action="/klasyfikator"  method="POST"><p align="center">\
		<b>Tutaj wpisz tekst do analizy:</b> <br />\
		<textarea id="styled" name="text" cols="90" rows="70">%s</textarea><br /><br /> \
		<input type="submit" name="run_script" value=" Dokonaj analizy " />\
		</p>\
	</form>'% text + '<div align=center><form  style="display:inline-block" action="/read1" style="display:inline-block" method="POST"><input type="submit" value=" Wczytaj przykład 1" /></form>'+\
'<form action="/read2" style="display:inline-block" method="POST"><input type="submit" value=" Wczytaj przykład 2" /></form>'+\
'<form action="/read3" style="display:inline-block" method="POST"><input type="submit" value=" Wczytaj przykład 3" /></form>'+\
'<form action="/read4" style="display:inline-block" method="POST"><input type="submit" value=" Wczytaj przykład 4" /></form></div><p/>'


@post('/read1') # or @route('/login')
def read1():
	return do_magic("Andres Amoros jest autorem libretta, a Cristobal Halffter partytury opery `Don Kichot`, której światowa prapremiera odbędzie się w środę na scenie Teatru Królewskiego w Madrycie. Przedpremierową, ostatnią próbę generalnę sztuki przeprowadzono z udziałem publiczności w poniedziałek wieczorem.")
	
@post('/read2') # or @route('/login')
def read2():
	return do_magic("W Bazylice Mariackiej odbyło się premierowe wykonanie oratorium Jana Kantego Pawluśkiewicza 'Droga, życie, Miłość. O Męce i Zmartwychwstaniu Pana'. Utwór jest poświęcony misterium Wielkiego Tygodnia.")	
	
@post('/read3') # or @route('/login')
def read3():
	return do_magic('''Minister rolnictwa, jeden z liderów SKL Artur Balazs powiedział PAP, że nigdy nie domagał się zmiany premiera. Zdementował nieoficjalne informacje przekazane PAP po sobotnio-niedzielnym posiedzeniu Rady Politycznej SKL."Nigdy nie domagałem się zmiany premiera. Zawsze byłem przeciwko temu" - oświadczył. Balazs podkreślił, że podałby się do dymisji, gdyby SKL domagało się odwołania szefa rządu. Wg niego, obecnie należy doprowadzić do "naprawy AWS". ''')	
	
@post('/read4') # or @route('/login')
def read4():
	return do_magic("Polską prapremierę sztuki Wernera Schwaba 'Antyklimaks'przygotowali aktorzy Teatru im. Wojciecha Bogusławskiego w Kaliszu. Sztuka austriackiego skandalisty pokazywana będzie na scenie kameralnej kaliskiego teatru.")	
	
@post('/klasyfikator') # or @route('/login', method='POST')
def run_script():
	text = request.forms.get('text')
	try:
		output = do_magic(text) +  ''' <b>Analiza wpisanego tekstu:</b> <br />'''+ go(text)
	except BaseException: 
		return do_magic(text) +  ''' <b>NIE MOŻNA ODCZYTAĆ PLIKÓW Z WAGAMI!</b> <br />'''
	return output
			
	##################################################
	 
	# Static files such as images or css 

from bottle import static_file


@route('/static/<filename>')
def send_image(filename):
    return static_file(filename, root='static')

	##################################################
	
@get('/sem') # or @route('/login')
def do_sem():
	forms=''
	for fileName in filesList:
		file=open('./'+fileName, 'r').read()
		forms+= '<form  style="display:inline-block" action="/sem" method="POST" display:inline>\
		<input type="submit"	 name="fileName"value="%s : \n Modyfikuj" style="display:inline-block" />\
		<textarea name="text" cols="20" rows="10"id="styled">%s</textarea></label>\
		</form>'% (fileName,file)
	
	
	return header() + "<fieldset><legend>Cechy semantyczne</legend>" +forms + "</fieldset>" 
	
		##################################################
	
@get('/model') # or @route('/login')
def do_model():
	model='''
	<fieldset><legend>Wprowadzenie</legend>
	<p>Stworzony system na za zadanie ocenę przynależności wprowadzonego przez użytkownika tekstu do określonego tematu.
	Każdy wyraz w tekscie może zawierać informacje o miejscu, zdarzeniu, obiekcie lub innych dodatkowych cechach jakie przekazuje.
	Użytkownik definiuje interesujące go określenia dla każdej z kategorii, podając dla każdego z nich "wagę" (im większa wartość wagi tym bardziej powiązane z tematem określenie)</p>
	</fieldset>
	<br/>
	<fieldset><legend>Metoda obliczania oceny tekstu</legend>
	<p>	OCENA = MIEJSCE * ZDARZENIE + OBIEKT + DODATKI</p>
	
	</fieldset>
	<br/>
	<fieldset><legend>Skrócony opis działania systemu</legend>

<p>1.	Zdefiniowanie cech semantycznych dla kategorii (Zdarzenie, Obiekt, Miejsce, Dodatek)</p>
<p>2.	Zdefiniowanie określeń mogących wyrażać cechy semantyczne</p>
<p>3.	Wprowadzenie opisu zdarzenia</p>
<p>4.	Próba znalezienia cech semantycznych w informacji</p>
<p>5.	Ocena informacji na podstawie odnalezionych cech semantycznych</p>
</fieldset>
'''
	
	return header() + model 

 ##########################################3
 
@post('/sem') # or @route('/login') 
def do_save():
	text = request.forms.get('text')
	fileName = request.forms.get('fileName').strip().split()[0]
	file = open('./'+fileName, 'w')
	file.write(text)
	file.close()
	return do_sem()

	##################################################

@route('/')
def index():
	output = '''
	
	<li><a href="/klasyfikator">Klasyfikator</a></li>
	<li><a href="/sem">Cechy semantyczne</a></li>
	<li><a href="/model">Opis systemu</a></li>
	
	'''

	return header() + output 


	from bottle import default_app
	application=default_app()


if __name__ == '__main__':
	run(host='195.88.114.18', port=666,reloader=True)
	# visit http://localhost:8080/

